package com.smdp.controller;


import com.smdp.dto.Result;
import com.smdp.service.IFollowService;
import org.springframework.web.bind.annotation.*;

import javax.annotation.Resource;

/**
 * 关注功能前端控制器。
 * 包含关注/取关博主、查询是否关注、查询共同关注。
 *
 * @author 蔡方珩
 */
@RestController
@RequestMapping("/follow")
public class FollowController {
    @Resource
    private IFollowService followService;

    /**
     * 关注/取关博主
     * @param followUserId  博主id
     * @param isFollow      是否关注
     * @return 成功：ok / 失败：失败原因
     */
    @PutMapping("/{id}/{isFollow}")
    public Result follow(
            @PathVariable("id") Long followUserId,
            @PathVariable("isFollow") Boolean isFollow
    ) {
        return followService.follow(followUserId, isFollow);
    }

    /**
     * 查询是否关注博主
     * @param followUserId  博主id
     * @return 关注博主：true / 未关注：false
     */
    @GetMapping("/or/not/{id}")
    public Result isFollow(@PathVariable("id") Long followUserId) {
        return followService.isFollow(followUserId);
    }

    /**
     * 查询和另一用户共同关注的博主。
     * @param id 另一用户的id
     * @return 成功：共同关注的用户列表List / 失败：失败原因
     */
    @GetMapping("/common/{id}")
    public Result followCommons(@PathVariable("id") Long id) {
        return followService.followCommons(id);
    }

}
